import { defineStore } from 'pinia'
import { ref } from 'vue'
import { ChatMessage } from '@/types'
// import { processUserQuestion } from '@/services/agent.ts'

export const useChatStore = defineStore('chat', () => {
  const messages = ref<ChatMessage[]>([
    {
      role: 'system',
      content: '你是一位城市规划领域的专家助手，擅长分析城市体检相关指标。请简洁明了地回答用户问题，并提供相关数据支持。'
    },
    {
      role: 'assistant',
      content: '您好！请问您想了解哪个城市的体检指标？例如："北京市的殡葬用地面积指标如何？"'
    }
  ])
  const loading = ref(false)

  const addMessage = (message: ChatMessage) => {
    messages.value.push(message)
  }

  const processUserInput = async (input: string) => {
    loading.value = true
    try {
      // 显示思考中消息
      addMessage({ role: 'assistant', content: '思考中...' })

      // 调用智能体服务处理问题
      // const result = await processUserQuestion(input)
      const result = {
        textResponse: '这是一个测试响应'
      }

      // 更新对话消息
      messages.value.pop() // 移除"思考中..."消息
      addMessage({ role: 'assistant', content: result.textResponse })

      // 更新地图数据和分析结果
      // (这部分逻辑会在其他store中处理)
    } catch (error) {
      console.error('处理用户输入失败:', error)
      messages.value.pop() // 移除"思考中..."消息
      addMessage({
        role: 'assistant',
        content: '抱歉，处理您的请求时出错了。请稍后再试。'
      })
    } finally {
      loading.value = false
    }
  }

  return {
    messages,
    loading,
    addMessage,
    processUserInput
  }
})